package lenybxb

import (
	"fmt"
	"strconv"
)

/**
 * @ProjectName: go-test
 * @PackageName: lenybxb
 * @Description:
 * @Author: hy.bai
 * @Date: 2025-07-18 15:22
 */
func TestStrconv() {
	// 1.int转换string
	var abc = 18                                    // 默认是int类型
	fmt.Printf("转换前的类型：%T, 值是%v\n", abc, abc)       // 转换前的类型：int, 值是18
	result := strconv.Itoa(abc)                     // int转化string
	fmt.Printf("转换后的类型：%T, 值是%v\n", result, result) // 转换后的类型：string, 值是18
	fmt.Println("--------------------------------")
	// 2.float转换string
	var def float64 = 3.1415926
	fmt.Printf("转换前的类型：%T, 值是%v\n", def, def)
	/*
		参数 1：要转换的值
		参数 2：格式化类型，常用的是f
		参数 3: 保n的小数点-1(不对小数点格式化)
		参数 4：float的位数，常用是64
	*/
	var fresult = strconv.FormatFloat(def, 'f', 2, 64)
	fmt.Printf("转换前的类型：%T, 值是%v\n", fresult, fresult)

	fmt.Println("--------------------------------")
	// 3.bool转换string
	bresult := strconv.FormatBool(true)
	fmt.Printf("类型：%T, 值是%v\n", bresult, bresult)

	fmt.Println("--------------------------------")
	// 4.int64转string
	var xyz int64 = 123456789
	intResult := strconv.FormatInt(xyz, 10) // 第二个参数10为进制
	fmt.Printf("类型：%T, 值是%v\n", intResult, intResult)

	fmt.Println("--------------------------------")
	// 5.string转换int
	var str = "123456789"
	atoi, _ := strconv.Atoi(str)
	fmt.Printf("类型：%T, 值是%v\n", atoi, atoi)
}
